
# -*- coding: utf-8 -*-
__author__ = 'qxq'


"""
IMEI为15位数字
格式为AAAAAAAA BBBBBB C
AAAAAAAA 为 Type Allocation Code
BBBBBB 为 Serial Number
C 为 Check Digit
IMEI校验码算法：
(1).将偶数位数字分别乘以2，分别计算个位数和十位数之和
(2).将奇数位数字相加，再加上上一步算得的值
(3).如果得出的数个位是0则校验位为0，否则为10减去个位数
"""


import random


def genImeiLuhn(digits14):
    digit15 = 0
    for num in range(14):
        if num % 2 == 0:
            digit15 = digit15+int(digits14[num])
        else:
            digit15 = digit15 + (int(digits14[num]) * 2) % 10 + int((int(digits14[num]) * 2) / 10)
    digit15 = int(digit15) % 10
    if digit15 == 0:
        digits14 = digits14+str(digit15)
    else:
        digits14 = digits14+str(10-digit15)
    return digits14


def genMassImei(stat14digits, amount):
    list = []
    ran = random.randint(0, amount - 1)
    for num in range(amount):
        imei = genImeiLuhn(stat14digits)
        stat14digits = str(int(stat14digits) + 1)
        list.append(imei)
    imei = list[ran]
    print(imei)
    return imei


if __name__ == '__main__':
    genMassImei("12345123451234", 1000)